package com.example.demo.service;


import java.util.List;

/**
 * 通用接口
 *
 * @param <T>
 */
public interface IService<T> {

    /**
     * 根据主键查询对象
     * @param key
     * @return
     */
    T selectByKey(Object key);

    /**
     * 选择新增数据（为空的不插入）
     * @param entity
     * @return
     */
    int save(T entity);

    /**
     * 根据ID删除对象
     * @param key
     * @return
     */
    int delete(Object key);

    /**
     * 根据主键更新对象
     * @param entity
     * @return
     */
    int updateAll(T entity);

    /**
     * 根据主键选择更新对象（为空的不更新）
     * @param entity
     * @return
     */
    int updateNotNull(T entity);

    /**
     * 根据条件查询单个条件
     * @param entity
     * @return
     */
    T selectByCond(T entity);

    /**
     * 根据实体类查询List
     * @param entity
     * @return
     */
    List<T> selectAll(T entity);


    /**
     * @param entity
     * @return
     */
    int selectCount(T entity);

}
